作者:手机用户2502856053 | 来源:互联网 | 2024-10-09 15:39
篇首语:本文由编程笔记#小编为大家整理,主要介绍了HDU - 2859 Phalanx(动态规划/哈希表)相关的知识,希望对你有一定的参考价值。
题目链接:点击查看
题目大意:给定一个整数n,然后给出一个n*n的方阵,求方阵中最大的对称子方阵(对称指的是以右上角至左下角为对角线)
分析:这个题网上有个一般做法,相当于一个动态规划的小模拟,时间复杂度为,这里不再赘述,一会直接上代码。
然后还有一个方法,是那天讲题的时候,鑫爷以非同常人的脑回路提出的,可以先用打一个哈希表,然后再遍历每一个点进行
判断,如果判断相等则直接更新,如果不相等则可以二分查找最长的相等子序列,这样时间复杂度就下降到了logn了,提交的
时候比一般方法快了十倍还多,不得感叹真的tql。
直接上代码吧:
一般做法:
#include<iostream>
#include
#include
#include
#include
#include
#include
#include
哈希表&#43;二分&#xff1a;
#include
#include
#include
#include
#include
#include
#include
#include